﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MakeIT.Alf.Site.Negocios;
using MakeIT.Alf.Site.Entidades;

namespace MakeIT.Alf.Site.Apresentacao
{
    public partial class SiteMaster : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            //carregaBanner();
            if (!IsPostBack)
            {
                carregaImoveis();
                carregaTipoImovel();
                carregaBairro();
                carregaCidade();
                carregaEstado();

                lblNomeContato.Text = AlfDAO.getParametro(null, "Site.Topo.Nome.Contato").valor;
                lblCreci.Text = AlfDAO.getParametro(null, "Site.Topo.Creci").valor;
                lblTelefone.Text = AlfDAO.getParametro(null, "Site.Telefone").valor;
                lblEmail.Text = AlfDAO.getParametro(null, "Site.Email").valor;
                //lbltxtBannerG.Text = AlfDAO.getParametro(null, "Site.Banner.Texto.Grande").valor;
                //lbltxtBannerP.Text = AlfDAO.getParametro(null, "Site.Banner.Texto.Pequeno").valor;
                lblRodape.Text = AlfDAO.getParametro(null, "Site.Rodape").valor;

                carregaBusca();
            }
        }

        protected void carregaBusca()
        {
            txtCodigo.Text = ""; // Convert.ToString(Session["codigo"]);
            ddlVendaLocacao.SelectedValue = Convert.ToString(Session["vendaLocacao"]);
            if (!String.IsNullOrEmpty(Convert.ToString(Session["tipoImovel"])))
                ddlTipoImovel.SelectedValue = Convert.ToString(Session["tipoImovel"]);
            if (!String.IsNullOrEmpty(Convert.ToString(Session["bairro1"])))
                ddlBairro1.SelectedValue = Convert.ToString(Session["bairro1"]);
            if (!String.IsNullOrEmpty(Convert.ToString(Session["bairro2"])))
                ddlBairro2.SelectedValue = Convert.ToString(Session["bairro2"]);
            if (!String.IsNullOrEmpty(Convert.ToString(Session["bairro3"])))
                ddlBairro3.SelectedValue = Convert.ToString(Session["bairro3"]);
            if (!String.IsNullOrEmpty(Convert.ToString(Session["cidade"])))
                ddlCidade.SelectedValue = Convert.ToString(Session["cidade"]);
            if (!String.IsNullOrEmpty(Convert.ToString(Session["estado"])))
                ddlEstado.SelectedValue = Convert.ToString(Session["estado"]);
            if (!String.IsNullOrEmpty(Convert.ToString(Session["doms"])))
                ddlDormitorios.SelectedValue = Convert.ToString(Session["doms"]);

            //rbDoms.SelectedValue = Convert.ToString(Session["doms"]);
            //rbVagas.SelectedValue = Convert.ToString(Session["vagas"]);
            txtMinimo.Text = Convert.ToString(Session["valorMinimo"]);
            txtMaximo.Text = Convert.ToString(Session["valorMaximo"]);

        }

        protected void carregaImoveis()
        {
            List<ImovelVO> iVOLista = new List<ImovelVO>();

            bool venda = false;
            bool locacao = false;

            if (Convert.ToString(Session["vendaLocacao"]) == "L")
                locacao = true;
            else
                venda = true;



            foreach (ImovelVO iVOItem in AlfDAO.getImovels(null, null, null, null, null, null, null, null, null, null, null, null, null, venda, locacao, null, null, 'S', true))
            {
                iVOItem.idImovelCatVO = AlfDAO.getImovelcat(iVOItem.idImovelCat);
                iVOItem.idImovelCatVO.idImovelTipoVO = AlfDAO.getImoveltipo(iVOItem.idImovelCatVO.idImovelTipo);

                iVOItem.idImovelxfotoVO = AlfDAO.getImovelxfoto(null, iVOItem.idImovel);

                if (iVOItem.idImovelxfotoVO == null)
                {
                    iVOItem.idImovelxfotoVO = ImovelxfotoVO.CreateVO();
                    iVOItem.idImovelxfotoVO.idImovelxfoto = 0;
                }

                if (locacao)
                    iVOItem.vlrVda = iVOItem.vlrLoc;


                iVOItem.bairro = AlfDAO.getBairro(AlfDAO.getLogradouro(iVOItem.idLogradouro).idBairro).bairro;


                if (venda)
                    iVOItem.vendaLocacao = "Venda";
                else
                    iVOItem.vendaLocacao = "Locação";


                iVOLista.Add(iVOItem);
            }

            Repeater1.DataSource = iVOLista;
            Repeater1.DataBind();
        }

        //protected void carregaBanner()
        //{
        //    Random random = new Random();
        //    int select = random.Next(1, 4);

        //    lbltxtBannerG.Style.Clear();
        //    lbltxtBannerG.Style.Add(HtmlTextWriterStyle.FontSize, "36px");
        //    lbltxtBannerG.Style.Add(HtmlTextWriterStyle.FontFamily, "Trebuchet MS");
        //    lbltxtBannerG.Style.Add(HtmlTextWriterStyle.Color, "#04234d");

        //    lbltxtBannerP.Style.Add(HtmlTextWriterStyle.FontSize, "24px");
        //    lbltxtBannerP.Style.Add(HtmlTextWriterStyle.FontFamily, "Trebuchet MS");

        //    string color = String.Empty;
        //    /*switch (select)
        //    {
        //        case 1:
        //            imgBanner.ImageUrl = "~/App_Themes/site/images/banner1.jpg";
        //            color = "#8d3d02";
        //            break;
        //        case 2:
        //            imgBanner.ImageUrl = "~/App_Themes/site/images/banner2.jpg";
        //            color = "#fff";
        //            break;
        //        case 3:
        //            imgBanner.ImageUrl = "~/App_Themes/site/images/banner3.jpg";
        //            lbltxtBannerP.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#c0c0c0");
        //            color = "#ffffff";
        //            break;
        //        default:
        //            imgBanner.ImageUrl = "~/App_Themes/site/images/banner1.jpg";
        //            color = "#8d3d02";
        //            break;
        //    } */
        //    imgBanner.ImageUrl = "~/App_Themes/site/images/banner2.jpg";
        //    color = "#fff";

        //    lbltxtBannerP.Style.Add(HtmlTextWriterStyle.Color, color);

        //}

        public void btnBuscar_Click(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }
        public void btnBuscar_Click()
        {
            int? codigo = null;
            char? vendaLocacao = null;
            int? tipoImovel = null;
            int? bairro1 = null;
            int? bairro2 = null;
            int? bairro3 = null;
            int? cidade = null;
            int? estado = null;
            int? doms = null;
            int? vagas = null;
            decimal? valorMinimo = null;
            decimal? valorMaximo = null;


            if (!string.IsNullOrEmpty(txtCodigo.Text))
            {
                codigo = int.Parse(txtCodigo.Text);
            }
            else
            {
                vendaLocacao = char.Parse(ddlVendaLocacao.SelectedValue);
                tipoImovel = int.Parse(ddlTipoImovel.SelectedValue);
                bairro1 = int.Parse(ddlBairro1.SelectedValue);
                bairro2 = int.Parse(ddlBairro2.SelectedValue);
                bairro3 = int.Parse(ddlBairro3.SelectedValue);
                cidade = int.Parse(ddlCidade.SelectedValue);
                estado = int.Parse(ddlEstado.SelectedValue);
                doms = int.Parse(ddlDormitorios.SelectedValue);


                //doms = int.Parse(rbDoms.SelectedValue);
                //if (doms == 0) doms = null;

                //vagas = int.Parse(rbVagas.SelectedValue);
                //if (vagas == 0) vagas = null;

                valorMinimo = null;
                string novoValorMinimo = txtMinimo.Text;
                if (!string.IsNullOrEmpty(novoValorMinimo))
                    valorMinimo = decimal.Parse(novoValorMinimo);

                valorMaximo = null;
                string novoValorMaximo = txtMaximo.Text;
                if (!string.IsNullOrEmpty(novoValorMaximo))
                    valorMaximo = decimal.Parse(novoValorMaximo);
            }
            criaSession(codigo, vendaLocacao, tipoImovel, bairro1, bairro2, bairro3, cidade, estado, doms, vagas, txtMinimo.Text, txtMaximo.Text);
            carregaImovel(codigo, vendaLocacao, tipoImovel, bairro1, bairro2, bairro3, cidade, estado, doms, vagas, valorMinimo, valorMaximo);

            Response.Redirect("Default.aspx");
        }

        protected void criaSession(int? codigo, char? vendaLocacao, int? tipoImovel, int? bairro1, int? bairro2, int? bairro3, int? cidade, int? estado, int? doms, int? vagas, string valorMinimo, string valorMaximo)
        {
            Session["codigo"] = codigo;
            Session["vendaLocacao"] = vendaLocacao;
            Session["tipoImovel"] = tipoImovel;
            Session["bairro1"] = bairro1;
            Session["bairro2"] = bairro2;
            Session["bairro3"] = bairro3;
            Session["cidade"] = cidade;
            Session["estado"] = estado;
            Session["doms"] = doms;
            Session["vagas"] = vagas;
            Session["valorMinimo"] = valorMinimo;
            Session["valorMaximo"] = valorMaximo;
        }

        protected void carregaImovel(int? codigo, char? vendaLocacao, int? tipoImovel, int? bairro1, int? bairro2, int? bairro3, int? cidade, int? estado, int? doms, int? vagas, decimal? valorMinimo, decimal? valorMaximo)
        {
            bool venda = false;
            bool locacao = false;

            if (Convert.ToString(Session["vendaLocacao"]) == "L")
                locacao = true;
            else
                venda = true;

            string bairros = String.Empty;

            if (bairro1 != -1 && bairro1 != -2)
                bairros += bairro1;

            if (bairro2 != -1 && bairro2 != -2)
            {
                if (!String.IsNullOrEmpty(bairros))
                    bairros += ";";
                bairros += bairro2;
            }

            if (bairro3 != -1 && bairro3 != -2)
            {
                if (!String.IsNullOrEmpty(bairros))
                    bairros += ";";
                bairros += bairro3;
            }

            txtMaximo.Text = Convert.ToString(Session["valorMaximo"]);
            Session["pesquisar"] = AlfDAO.getImovelsPeqSite(codigo, venda, locacao, tipoImovel, bairros, cidade, estado, doms, vagas, valorMinimo, valorMaximo, null, null, null, true);
            //carregaImoveis();
        }

        protected void carregaTipoImovel()
        {
            List<ImoveltipoVO> itVOLista = new List<ImoveltipoVO>();
            //ImoveltipoVO itVO = ImoveltipoVO.CreateVO();
            //itVO.idImovelTipo = -1;
            //itVO.imovelTipo = "";
            //itVOLista.Add(itVO);

            {
                ImoveltipoVO itVO = ImoveltipoVO.CreateVO();
                itVO.idImovelTipo = -2;
                itVO.imovelTipo = "Tipo do Imóvel";
                itVOLista.Add(itVO);
            }
            {
                ImoveltipoVO itVO = ImoveltipoVO.CreateVO();
                itVO.idImovelTipo = -1;
                itVO.imovelTipo = "Todos";
                itVOLista.Add(itVO);
            }

            itVOLista.AddRange(AlfDAO.getImoveltipos());
            ddlTipoImovel.DataSource = itVOLista;
            ddlTipoImovel.DataBind();
        }

        protected void carregaBairro()
        {
            List<BairroVO> bVOLista = new List<BairroVO>();
            //BairroVO bVO = BairroVO.CreateVO();
            //bVO.idBairro = -1;
            //bVO.bairro = "";
            //bVOLista.Add(bVO);

            {
                BairroVO bVO = BairroVO.CreateVO();
                bVO.idBairro = -2;
                bVO.bairro = "Bairro";
                bVOLista.Add(bVO);
            }
            {
                BairroVO bVO = BairroVO.CreateVO();
                bVO.idBairro = -1;
                bVO.bairro = "Todos";
                bVOLista.Add(bVO);
            }

            bVOLista.AddRange(AlfDAO.getBairros());

            ddlBairro1.DataSource = bVOLista;
            ddlBairro1.DataBind();

            ddlBairro2.DataSource = bVOLista;
            ddlBairro2.DataBind();

            ddlBairro3.DataSource = bVOLista;
            ddlBairro3.DataBind();
        }

        protected void carregaCidade()
        {
            List<CidadeVO> cVOLista = new List<CidadeVO>();
            //CidadeVO cVO = CidadeVO.CreateVO();
            //cVO.idCidade = -1;
            //cVO.cidade = "";
            //cVOLista.Add(cVO);

            {
                CidadeVO cVO = CidadeVO.CreateVO();
                cVO.idCidade = -2;
                cVO.cidade = "Cidade";
                cVOLista.Add(cVO);
            }
            {
                CidadeVO cVO = CidadeVO.CreateVO();
                cVO.idCidade = -1;
                cVO.cidade = "Todas";
                cVOLista.Add(cVO);
            }

            cVOLista.AddRange(AlfDAO.getCidades());
            ddlCidade.DataSource = cVOLista;
            ddlCidade.DataBind();
        }

        protected void carregaEstado()
        {
            List<EstadoVO> eVOLista = new List<EstadoVO>();
            //EstadoVO eVO = EstadoVO.CreateVO();
            //eVO.idEstado = -1;
            //eVO.estado = "";
            //eVOLista.Add(eVO);

            {
                EstadoVO eVO = EstadoVO.CreateVO();
                eVO.idEstado = -2;
                eVO.estado = "Estado";
                eVOLista.Add(eVO);
            }
            {
                EstadoVO eVO = EstadoVO.CreateVO();
                eVO.idEstado = -1;
                eVO.estado = "Todos";
                eVOLista.Add(eVO);
            }

            eVOLista.AddRange(AlfDAO.getEstados());
            ddlEstado.DataSource = eVOLista;
            ddlEstado.DataBind();
        }

        protected void txtCodigo_TextChanged(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }

        //protected void rbVendLoca_SelectedIndexChanged(object sender, EventArgs e)
        //{
        //    btnBuscar_Click();
        //}

        protected void ddlVendaLocacao_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }

        protected void ddlTipoImovel_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }

        protected void ddlBairro1_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }

        protected void ddlBairro2_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }

        protected void ddlBairro3_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }

        protected void ddlCidade_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }

        protected void ddlEstado_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }

        //protected void rbDoms_SelectedIndexChanged(object sender, EventArgs e)
        //{
        //    btnBuscar_Click();
        //}

        protected void ddlDormitorios_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }

        //protected void rbVagas_SelectedIndexChanged(object sender, EventArgs e)
        //{
        //    btnBuscar_Click();
        //}

        //protected void ddlVagas_SelectedIndexChanged(object sender, EventArgs e)
        //{
        //    btnBuscar_Click();
        //}

        protected void txtMinimo_TextChanged(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }

        protected void txtMaximo_TextChanged(object sender, EventArgs e)
        {
            btnBuscar_Click();
        }

    }
}
